import { _add, _subtract, _multiply, _divide } from './base';

/**
 * 加法函数
 * @param {Array<number | string>} args
 * @return {string | number}
 */
export function add(args: Array<number | string>): string | number {
  return args.reduce((prev: number | string, cur: number | string) => {
    return _add(prev, cur);
  });
}

/**
 * 减法函数
 * @param {Array<number | string>} args
 * @return {string}
 */
export function subtract(args: Array<number | string>) {
  return args.reduce((prev: number | string, cur: number | string) => {
    return _subtract(prev, cur);
  });
}

/**
 * 乘法函数
 * @param {Array<number | string>} args
 * @return {string}
 */
export function multiply(args: Array<number | string>) {
  return args.reduce((prev: number | string, cur: number | string) => {
    return _multiply(prev, cur);
  });
}

/**
 * 除法函数
 * @param {Array<number | string>} args
 * @return {string}
 */
export function divide(args: Array<number | string>) {
  return args.reduce((prev: number | string, cur: number | string) => {
    return _divide(prev, cur);
  });
}

/**
 * 是否为数字
 * @param {number | string} num
 */
export function isNum(num: Array<number | string>) {
  if (!num || !Number(num)) {
    return 0;
  }
  if (Number(num) === Infinity) {
    return 0;
  }
  if (Number(num) === -Infinity) {
    return 0;
  }
  return num;
}
